// 给你一个字符串path，表示指向某一文件或目录的Unix风格 绝对路径，请将其转化为更加简洁的规范路径
// 1. 始终以斜杠开头
// 2. 两个目录名之间必须只有一个斜杠
// 3. 最后一个目录名（如果存在）不能以‘/’结尾
// 4. 此外，路径仅包含从根目录到目标文件或者目录的路径上的目录（即不含 ‘.’或‘..’）

// 思路：堆栈，通过'/'转为数组，判断是否各种条件进行栈的操作
// 时间复杂度：O(n)，n是字符串的长度
// 空间复杂度：O(n)，stack的大小

function simplifyPath(str) {
    let stack = []
    let arr = str.split('/')
    for (let i = 0; i < arr.length; i++) {
        if (arr[i] === '..') {
            if (stack.length) {
                stack.pop()
            }
        } else if (arr[i].length && arr[i] !== '.') {
            stack.push(arr[i])
        }      
    }
    return '/' + stack.join('/')
}

let path = "/a/./b/../../c/"
console.log(simplifyPath(path))